﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Lwllm.ArcengineProxy.Core.Models;

namespace Lwllm.ArcengineProxy.Core.Interfaces
{
    public interface IApQueryable<TEntity> where TEntity : BaseEntity
    {
        TEntity FirstOrDefault();
        TEntity FirstOrDefault(Expression<Func<TEntity, bool>> predicate);
        TEntity GetByFid(int fid);
        IApQueryable<TEntity> GetByFids(IEnumerable<int> fids);
        IApQueryable<TEntity> Where(Expression<Func<TEntity, bool>> predicate);
        IEnumerable<TEntity> ToList();
        IApQueryable<TEntity> Skip(int count);
        IApQueryable<TEntity> Take(int count);
    }
}